package com.cn.wanxi.servlet;

import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.model.ProductModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.service.NavService;
import com.cn.wanxi.service.ProductService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        req 页面请求后端，resp叫做Java响应给前端
        //给一个前端用户需要的页面
//        这里有两种情况，
//        1，需要给前端返回一个值。这个叫做页面转发
//        String phone = "028-9999999999";
//        以后看见set基本上都是对谁进行赋值，说明req也是一个容器或者对象
//        req是一个key-value属性，通过key得到value；

        /*
         * 作用域是指作用范围
         * page 页面对象
         * request  请求对象  只能再当前页面
         * session 会话期对象  可以再不同页面
         * application 应用程序对象  可以跨浏览器
         * 那么到底用哪个作用域呢？
         * 根据需要
         */
//        CompanyModel companyModel = new CompanyModel();
//        我们需要的数据应该来源于服务逻辑层的封装，所以需要调用服务逻辑层CompanyService
//        CompanyService companyService = new CompanyService();
////        得到服务逻辑层返回的数据，因为我们需要将数据返回给前端页面
//        CompanyModel companyModel = companyService.getCompanyModel();
////        将数据保存到一个容器里面，前端直接再里面去拿值
//        req.setAttribute("companyModel", companyModel);
//        req.setAttribute("logo","../img/logo.jpg");
//        req.setAttribute("phone", phone);
//        req.getSession().setAttribute("phone", phone);
//        req.getServletContext().setAttribute("phone",phone);


//        导航信息
//        如果将相同的元素放在一个容器里面，那么这个容器就叫做数组
//        注意：一定要用复制，不要手写
//        如果是数组，那么想要去对它操作，一定会涉及到循环，一般用for循环
//        NavService navService = new NavService();
//        NavModel[] navModels = navService.getNavModel();
//        req.setAttribute("navModels", navModels);

        CommonServlet.setReq(req);
//        产品
        ProductService productService = new ProductService();
        ProductModel[] productModels = productService.getProductModels();
        req.setAttribute("productModels", productModels);
        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);
//        2.直接返回页面,这个叫做页面重定向
//        resp.sendRedirect("/jsp/home.jsp");


    }
}
